import * as type from './mutations_type'
import * as func from '../function'

export default {
  // 添加事件 state是操作数据 obj是传入的参数是对象
  [type.ADDEVENT](state, obj) {
    state.count++;
    obj.id = state.count;
    console.log(obj.id);
    state.event.unshift(obj)
    console.log(state.event)
    // 添加 相当于对数据进行了更新 要存储一下
    func.local.set(state)
  },
  // 移动到已完成 
  [type.MOVEDONE](state, id) {
    // 遍历事件 如果跟传入的参数id相等 type改为2 添加到已完成 从未完成中删除
    // 已完成的最后面显示的时间
    for(let i = 0; i < state.event.length; i ++) {
      if(state.event[i].id === id) {
        state.event[i].type = 2
        state.event[i].time = func.getDate()
        // 将这个数据保存一下 放入已完成中 
        var item = state.event[i]
        // 将这个数据从未完成里面删除
        state.event.splice(i, 1)
        break
      }
    }


    state.event.unshift(item)
    // 数据更新了 就要保存一下
    func.local.set(state)
    console.log(state);

  },

  // 从已完成移动到未完成
  [type.MOVETODO](state, id) {
    for(let i = 0; i < state.event.length; i++) {
      if(state.event[i].id === id) {
        state.event[i].type = 1
        var item = state.event[i]
        // 从已完成中删除
        state.event.splice(i, 1)
        break
      }
    }

    state.event.unshift(item)
    func.local.set(state)
  
  },

  // 移动到已取消
  [type.MOVECANCEL](state, id) {
    for(let i = 0; i < state.event.length; i++) {
      if(state.event[i].id === id) {
        state.event[i].type = 3
        var item = state.event[i]
        state.event.splice(i, 1)
        break
      }
    }

    state.event.unshift(item)
    func.local.set(state)
  },

  // 清除所有事件
  [type.CLEAREVENT](state) {
    state.event = []
    func.local.clear()
  },

  // 上传事件 导入数据
  [type.UPLOADEVENT](state, data) {
    data = JSON.parse(data);
    state.event = data.event.event;
    state.count = data.event.count;
    func.local.set(state);
  },

  // 删除单条事件
  [type.DELEVENT](state, info) {
    // if(state.event[info.index].id === info.id) {
    //   state.event.splice(info.index, 1)
    // }
    if(state.event.filter(function(currentValue, i) {
      if(currentValue.id === info.id) {
        state.event.splice(i, 1)
      }
    }))

    func.local.set(state)
  },

  // 编辑数据
  [type.EDITEVENT](state, info) {
    if(state.event[info.index].id === info.id) {
      state.event[info.index].content = info.content
    }else {
      state.event.filter(function(currentValue, i) {
        if(currentValue.id === info.id) {
          currentValue.content = info.content
        }
      })
    }

    func.local.set(state)
  }
}